]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
screenshot: Port to Clutter.Grab
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 28 Jan 2022 11:13:45 +0000 (12:13 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Sat, 29 Jan 2022 00:16:30 +0000 (01:16 +0100)
Stop using device/sequence grabs for corner handles. Also
make the toplevel actor reactive, so it can handle the key events
it means to.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2045>

js/ui/screenshot.js

index c1f2a16353c34f4e0c18298ab66165e0cc008911..97f782e52401fb931e4756a6858f45e1f92a36d1 100644 (file)
@@ -375,10 +375,10 @@ var UIAreaSelector = GObject.registerClass({
         if (!this._dragButton)
             return;
 
-        if (this._dragSequence)
-            this._dragDevice.sequence_ungrab(this._dragSequence);
-        else
-            this._dragDevice.ungrab();
+        if (this._dragGrab) {
+            this._dragGrab.dismiss();
+            this._dragGrab = null;
+        }
 
         this._dragButton = 0;
         this._dragDevice = null;
@@ -495,11 +495,8 @@ var UIAreaSelector = GObject.registerClass({
 
         if (this._dragButton) {
             const device = event.device;
-            if (sequence)
-                device.sequence_grab(sequence, this);
-            else
-                device.grab(this);
 
+            this._dragGrab = global.stage.grab(this);
             this._dragDevice = device;
             this._dragSequence = sequence;
 
@@ -1010,6 +1007,7 @@ class ScreenshotUI extends St.Widget {
             layout_manager: new Clutter.BinLayout(),
             opacity: 0,
             visible: false,
+            reactive: true,
         });
 
         this._lockdownSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.lockdown' });